package com.dtx.interpreter;

import java.io.*;

/**
 * Main类是启动我们之前学习的迷你语言解释器的程序。它会读取program.txt文件,然后逐行解析迷你程序,并将解析结果显示出来。
 * 在显示结果中,以"text ="开头的部分是迷你程序语句,以"node = 开头的部分是语法解析结果。语法解析器识别出了program ... end
 * 字符串中的迷你语言的语法元素,并为它们加上了[]。这表示语法解释器正确地理解了我们定义的迷你余元
 *
 * 注意 ：
 * 将CommandListNode的实例转换成字符串显式出来————例如在[go,right]中加上大括号和逗号————的是java.util.ArrayList的toString方法。
 */
public class InterpreterMain {

    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(
                    "graphdesign"
                            +File.separator+"interpreter"
                            +File.separator+"program.txt"));
            String text;
            while (((text = reader.readLine())!=null)){
                System.out.println("text=\"" + text + "\"");
                Node node = new ProgramNode();
                node.parse(new Context(text));
                System.out.println("node = " + node);
            }
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
